using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.Modeling;

namespace DslCrossModelFramework {
    public interface IModelFileHelper : IDisposable {
        List<DslToolsPackageInfo> GetExportablePackages();
        List<IModelFile> GetDslModels(IEnumerable<DslToolsPackageInfo> packageInfo);
        ModelElement LoadModelRoot(Store store, DslToolsPackageInfo packageInfo, IModelFile modelFile);
        event EventHandler<ModelLoadingNotificationEventArgs> ModelLoadingNotification;
    }

    public class ModelLoadingNotificationEventArgs : EventArgs {
        private int percentageComplete = 0;
        public int PercentageComplete {
            get { return percentageComplete; }
        }
        public ModelLoadingNotificationEventArgs(int percentageComplete) {
            this.percentageComplete = percentageComplete;
        }
    }
}